//package com.vk.work2pdfdemo.utils;
//
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import org.apache.poi.ss.usermodel.*;
//import org.apache.poi.xssf.usermodel.XSSFRow;
//import org.apache.poi.xssf.usermodel.XSSFSheet;
//import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.servlet.http.HttpServletResponse;
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.OutputStream;
//import java.util.ArrayList;
//
///**
// * author:赵国庆
// * date:2023/1/14
// * name:Excel导入/导出工具类
// */
//public class ExcelTool {
//
//    /**
//     * message:Excel导出功能
//     * @param excelName Excel文件名
//     * @param excelOutPath Excel文件保存路径
//     * @param rowList Excel的内容
//     * @return
//     */
//    public String excelOut(String excelName, String excelOutPath, ArrayList<ArrayList> rowList) {
//
//        String status = "0";    // 设置导出方法执行结果，0失败，1成功，2成功但文件名已存在
//        String message = "";    // 设置提示信息
//        JSONObject obj = new JSONObject();      // 存放执行信息status和message
//
//        // 创建工作簿类
//        // Excel2003版本（包含2003）以前使用HSSFWorkbook类，扩展名为.xls
//        // Excel2007版本（包含2007）以后使用XSSFWorkbook类，扩展名为.xlsx
//        XSSFWorkbook workbook = new XSSFWorkbook();
//
//        // 创建工作表并设置表名，表名为 传入的表名参数，请注意工作表名不是Excel文件名
//        XSSFSheet sheet = workbook.createSheet(excelName);
//        // 工作表中的行
//        XSSFRow row = null;
//
//        // rowList为预导出的数据集，结构为ArrayList套ArraList，外层为行，里层为列，如下图所示
//        // [                                        excel内容
//        //      [第一列, 第二列, 第三列 ...],        excel第一行
//        //      [第一列, 第二列, ...],            excel第二行
//        //      [第一列, ...],                 excel第三行
//        //      ...                         以此类推
//        // ]
//        int rowNum = 0;     // 行下标
//
//        // 创建excel行
//        for (ArrayList<String> colList: rowList) {
//            row = sheet.createRow(rowNum);
//            int colNum = 0;     // 列下标
//
//            // 对每行逐列插入值
//            for (String colValue: colList) {
//                row.createCell(colNum).setCellValue(colValue);
//                colNum++;
//            }
//
//            rowNum++;
//        }
//
//        // 设置Excel文件路径，例如：E:\ + 学生表 + 20230114（这是我自己写的时间获取方法，别人用不了，删了就行） + .xlsx
//        String excelFileName = excelOutPath + excelName + CalendarTool.getTodayNum() + ".xlsx";
//        File outExcleFile = new File(excelFileName);
//        int fileVersion = 0;
//
//        // 判断路径下是否存在同名文件，如果不进行判断，会覆盖同名文件内容，造成同名信息丢失
//        // 所以，若存在同名文件，给文件名加(1)、(2)这样的标识
//        while (outExcleFile.exists()) {
//            fileVersion++;
//            excelFileName = excelOutPath + excelName + CalendarTool.getTodayNum() + "(" + fileVersion + ").xlsx";
//            outExcleFile = new File(excelFileName);
//        }
//
//        try {
//            // 创建指向该路径的输出流
//            FileOutputStream stream = new FileOutputStream(outExcleFile);
//
//            // 将数据导出到Excel表格
//            workbook.write(stream);
//
//            // 关闭输出流
//            stream.close();
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//
//            System.out.println("excel导出失败。");
//            obj.put("status", status);
//            obj.put("message", "excel导出失败。");
//
//            return obj.toJSONString();
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//
//        if (fileVersion == 0) {
//            System.out.println("导出成功，保存路径为：" + excelFileName);
//            obj.put("status", "1");
//            obj.put("message", "导出成功，保存路径为：" + excelFileName);
//
//            return obj.toJSONString();
//        } else {
//            System.out.println("导出成功，保存路径为：" + excelFileName);
//            obj.put("status", "2");
//            obj.put("message", "导出成功，保存路径为：" + excelFileName);
//
//            return obj.toJSONString();
//        }
//    }
//
//	*
//     * message:Excel导出功能，浏览器下载
//     * @param excelName Excel文件名
//     * @param rowList Excel的内容
//     * @return
//
//    public String excelOutOnBrowser(HttpServletResponse resp, String excelName, ArrayList<ArrayList> rowList) {
//
//        String status = "0";    // 设置导出方法执行结果，0失败，1成功，2成功但文件名已存在
//        String message = "";    // 设置提示信息
//        JSONObject obj = new JSONObject();      // 存放执行信息status和message
//
//        // 创建工作簿类
//        // Excel2003版本（包含2003）以前使用HSSFWorkbook类，扩展名为.xls
//        // Excel2007版本（包含2007）以后使用XSSFWorkbook类，扩展名为.xlsx
//        XSSFWorkbook workbook = new XSSFWorkbook();
//
//        // 创建工作表并设置表名，表名为 传入的表名参数，请注意工作表名不是Excel文件名
//        XSSFSheet sheet = workbook.createSheet(excelName);
//        // 工作表中的行
//        XSSFRow row = null;
//
//        // rowList为预导出的数据集，结构为ArrayList套ArraList，外层为行，里层为列，如下图所示
//        // [                                        excel内容
//        //      [第一列, 第二列, 第三列 ...],        excel第一行
//        //      [第一列, 第二列, ...],            excel第二行
//        //      [第一列, ...],                 excel第三行
//        //      ...                         以此类推
//        // ]
//        int rowNum = 0;     // 行下标
//
//        // 创建excel行
//        for (ArrayList<String> colList: rowList) {
//            row = sheet.createRow(rowNum);
//            int colNum = 0;     // 列下标
//
//            // 对每行逐列插入值
//            for (String colValue: colList) {
//                row.createCell(colNum).setCellValue(colValue);
//                colNum++;
//            }
//
//            rowNum++;
//        }
//
//        // 设置Excel文件名，例如：学生表 + 20230114（这是我自己写的时间获取方法，别人用不了，删了就行） + .xlsx
//        String excelFileName = excelName + CalendarTool.getTodayNum() + ".xlsx";
//
//        try {
//            // 设置响应格式，让浏览器知道是下载操作
//            resp.setContentType("applicaton/x-mdownload");
//            // 设置下载后的文件名
//            resp.setHeader("Content-Disposition", "atachment;filename=" + new String(excelFileName.getBytes("utf-8"),"ISO8859-1"));
//            // 设置响应编码
//            resp.setContentType("text/html;charcet=UTF-8");
//            // 建立输出流的连接
//            OutputStream outputStream = resp.getOutputStream();
//
//            // 将数据导出到Excel表格
//            workbook.write(outputStream);
//
//            // 关闭输出流
//            outputStream.close();
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//
//            System.out.println("excel导出失败。");
//            obj.put("status", status);
//            obj.put("message", "excel导出失败。");
//
//            return obj.toJSONString();
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//
//        status = "1";
//        obj.put("status", status);
//        obj.put("message", "excel导出成功。");
//
//        return obj.toJSONString();
//    }
//
//}
